"""
一、按要求操作

1. 创建一个类，名叫Employee
2. 实例化的时候，必须提供这些属性：name, age, phone。
   另外还需设置 empid 属性，此属性的值由一个函数gen_empid() 生成，这个ID必须是整数
3. empid一旦设置，就不能更改，如果尝试更改，就抛出AttributeError异常

"""

import random


class Employee:

    def __init__(self, name, age, phone):
        self.name = name
        self.age = age
        self.phone = phone
        self.__dict__['empid'] = self.gen_empid()

    def gen_empid(self):
        # 生成并返回一个员工号码
        return random.randint(1, 99999)

    def __setattr__(self, name, value):
        if name == 'empid':
            raise AttributeError('empid can not be changed')
        self.__dict__[name] = value


e = Employee('Alice', 18, '13812345678')
print(e.__dict__)
e.name = 'Bob'
e.age += 1
e.empid += 1    # 这条语句将会出错
